/**
 * router.js路由模块
 * 划分模块的目的就是为了增强代码的可维护性
 * @get req.query
 * @post req.body
 */

var fs = require('fs')  // 需要引用json文件
var Student = require('./student_dbjson')

// express提供了一种更好的方式 专门用来包装路由的
var express = require('express')
// 1.创建一个路由容器
var router = express.Router()
// 2.把路由都挂载到router路由容器中
router.get('/students', function (req, res) {
    fs.readFile('./db.json','utf8',function(err,data){
        if(err) {
            console.log('读取文件失败了')
            return res.status(500).send('Server error')
        } else {
            console.log(data) // 字符串类型
            var students = JSON.parse(data).students
            res.render('index.html', {
                students111: students // 字符串转对象才能使用
            })
            // console.log(data.toString()) // 除了utf8还可以用toString
        }
    })
})

// 跳转到新增页面
router.get('/students/new', function (req, res) {
    res.render('new.html', {})
})

// 确认新增
router.post('/students/new', function (req, res) {
    console.log(req.body)
    Student.save(req.body, function (err) {
        if (err) {
            console.log('读取文件失败了')
            return res.status(500).send('Server error')
        } else {
            res.redirect('/students')
        }
    })
})

// 渲染编辑学生页面
router.get('/students/edit', function (req, res) {
    console.log('req======', req.query)
    Student.findById(parseInt(req.query.id), function (err, student) {
        if (err) {
            console.log('修改文件失败了')
            return res.status(500).send('Server error')
        }
        console.log(student)
        res.render('edit.html', {
            student: student
        })
    })
    console.log('id======', req.query.id)
})

// 确认修改学生信息
router.post('/students/edit', function (req, res) {
    console.log(req.body)
    Student.updateById(req.body, function (err) {
        if (err) {
            return res.status(500).send('Server error')
        } else {
            res.redirect('/students')
        }
    })
})

// 确认删除
router.get('/students/delete', function (req, res) {
    Student.deleteById(req.query.id, function (err) {
        if (err) {
            return res.status(500).send('Server error')
        } else {
            res.redirect('/students')
        }
    })
})
// 3.导出router
module.exports = router


